package cn.iocoder.yudao.module.mzt.controller.app.portal.vo;

import cn.iocoder.yudao.framework.excel.core.annotations.DictFormat;
import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "用户app - 文章 Response VO")
@Data
public class PortalArticleRespVO {

    @Schema(description = "ID", requiredMode = Schema.RequiredMode.REQUIRED, example = "8132")
    private Long id;

    @Schema(description = "标题", requiredMode = Schema.RequiredMode.REQUIRED)
    private String title;

    @Schema(description = "图片", requiredMode = Schema.RequiredMode.REQUIRED)
    private String cover;

    @Schema(description = "摘要")
    private String summary;

    @Schema(description = "内容", requiredMode = Schema.RequiredMode.REQUIRED)
    private String content;

    @Schema(description = "状态", requiredMode = Schema.RequiredMode.REQUIRED, example = "1")
    @DictFormat("mzt_status") // TODO 代码优化：建议设置到对应的 DictTypeConstants 枚举类中
    private Integer status;

    @Schema(description = "推荐", requiredMode = Schema.RequiredMode.REQUIRED)
    @DictFormat("mzt_recommend") // TODO 代码优化：建议设置到对应的 DictTypeConstants 枚举类中
    private Integer recommend;

    @Schema(description = "浏览量", requiredMode = Schema.RequiredMode.REQUIRED, example = "16836")
    private Long viewCount;

    @Schema(description = "点赞数", requiredMode = Schema.RequiredMode.REQUIRED, example = "7391")
    private Long likeCount;

    @Schema(description = "SEO标题")
    private String seoTitle;

    @Schema(description = "SEO关键词")
    private String seoKeywords;

    @Schema(description = "SEO描述", example = "你猜")
    private String seoDescription;

    @Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
    private LocalDateTime createTime;

    @Schema(description = "分类名字", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")
    private String categoryName;

    @Schema(description = "分类ID")
    private Long categoryId;

    @Schema(description = "绑定文章标签id", example = "1")
    private List<Long> tagIds;

    @Schema(description = "绑定文章标签名字", example = "1")
    private List<String> tagNames;

    @Schema(description = "创建人信息")
    private AdminUserRespDTO userInfo;

    @Schema(description = "上一篇文章")
    private String previousArticle;

    @Schema(description = "下一篇文章")
    private String nextArticle;

    private Boolean liked = false;
}
